import axios from '../axios';
/**
 * 记账各个模块请求服务器接口
 * @interface common/api/account
 * @author lxr
 */
export default {
  /**
   * @param  {Object} data - 支出（收入）数据列表入参
   * @example 参数 { "storeCode": ["10086"] ,"accountFlag": 1，"beginTime": 1501516800，"endTime": 1504195199}
   * @returns {Object} 接口返回成功或者失败
   */
  getAccountToolList (data) {
    return axios.postWithSCode('/api/sys/account/list', data);
  },
  /**
   * @param  {Object} data - 支出（收入）总计入参
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1，"beginTime": 1501516800，"endTime": 1504195199}
   * @returns {Object} 接口返回成功或者失败
   */
  getAccountToolTotal (data) {
    return axios.postWithSCode('/api/sys/account/total', data);
  },
  /**
   * @param  {Object} data - 支出（收入）总计入参
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1，"beginTime": 1501516800，"endTime": 1504195199}
   * @returns {Object} 接口返回成功或者失败
   */
  saveAccountData (data) {
    return axios.postWithSCode('/api/sys/account/simple/update', data);
  },
  /**
   * @param  {Object} data - 支出（收入）复制上个月数据入参
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  accountCopyLastMonth (data) {
    return axios.postWithSCode('/api/sys/account/simple/copy', data);
  },
  /**
   * @param  {Object} data - 记一笔所填项
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  getcategoryList (data) {
    return axios.postWithSCode('/api/sys/account/category/all/list', data);
  },
  /**
   * @param  {Object} data - 记一笔所填项
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  pushcategoryitem (data) {
    return axios.postWithSCode('/api/sys/account/professional/save', data);
  },
  /**
   * @param  {Object} data - 收入支出列表
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  getDetailList (data) {
    return axios.postWithSCode('/api/sys/account/sub/list', data);
  },
  /**
   * @param  {Object} data - 收入支出详情
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  getDetail (data) {
    return axios.getService('/api/sys/account/detail/' + data);
  },
  /**
   * @param  {Object} data - 修改记一笔所填项
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  changecategoryitem (data) {
    return axios.postWithSCode('/api/sys/account/detail/update', data);
  },
  /**
   * @param  {Object} data - 删除记一笔所填项
   * @example 参数 { "storeCode": ['10086'] ,"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  deletecategoryitem (data) {
    return axios.getService('/api/sys/account/detail/delete/' + data);
  },
  /**
   * @param  {Object} data - 记账设置中获取原料成本计算方式和记账方式
   * @example 参数 { "storeCode": ['10086'] ,"groupCode": '12345'}
   * @returns {Object} 接口返回成功或者失败
   */
  getAccountSet (data) {
    return axios.postWithSCode('/api/sys/account/set', data);
  },
  /**
   * @param  {Object} data - 记账设置中修改记账方式信息
   * @example 参数 { "storeCode": ['10086'] ,"groupCode": '10010' , "accountMode": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  updateAccountMethod (data) {
    return axios.postWithSCode('/api/sys/account/mode/update', data);
  },
  /**
   * @param  {Object} data - 记账设置中修改原料成本计算方式信息
   * @example 参数 { "storeCode": ['10086'] ,"groupCode": '10010' , "costingMode": 1 , "profitRate": 11}
   * @returns {Object} 接口返回成功或者失败
   */
  updateAccountCosting (data) {
    return axios.postWithSCode('/api/sys/account/costing/update', data);
  },
  /**
   * @param  {Object} data - 记账设置中查询收入（支出）大类列表
   * @example 参数 { "storeCode": ['10086'] ,"groupCode": '10010' , "accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  getAccountSetList (data) {
    return axios.postWithSCode('/api/sys/account/category/list', data);
  },
  /**
   * @param  {Object} data - 记账设置中新增收入（支出）大类
   * @example 参数 { "storeCode": ['10086'] ,"groupCode": '10010', "accountName": '其他'，"accountFlag": 1}
   * @returns {Object} 接口返回成功或者失败
   */
  addAccountType (data) {
    return axios.postWithSCode('/api/sys/account/category/save', data);
  },
  /**
   * @param  {Object} data - 记账设置中删除收入（支出）大类
   * @example 参数 api/sys/account/category/111
   * @returns {Object} 接口返回成功或者失败
   */
  deleteAccountType (data) {
    return axios.delService('/api/sys/account/category/' + data, '');
  },
  /**
   * @param  {Object} data - 记账设置中更新收入（支出）大类顺序
   * @example 参数 ["111","111"]
   * @returns {Object} 接口返回成功或者失败
   */
  updateAccountOrder (data) {
    return axios.postService('api/sys/account/category/update', data);
  },
  /**
   * @param  {Object} data - 记账设置中收入（支出）子类查询
   * @example 参数 api/sys/account/category/111
   * @returns {Object} 接口返回成功或者失败
   */
  getChildAccountTypeList (data) {
    return axios.getService('api/sys/account/category/' + data, '');
  },
  /**
   * @param  {Object} data - 记账设置中新增收入（支出）子类
   * @example 参数 { "parentAccountCode": '10086' ,"accountSubName": '新增名称'}
   * @returns {Object} 接口返回成功或者失败
   */
  addChildAccountType (data) {
    return axios.postService('/api/sys/account/category/sub/save', data);
  },
  /**
   * @param  {Object} data - 记账设置中删除收入（支出）子类
   * @example 参数 api/sys/account/category/sub/111
   * @returns {Object} 接口返回成功或者失败
   */
  deleteChildAccountType (data) {
    return axios.delService('api/sys/account/category/sub/' + data, '');
  },
  /**
   * @param  {Object} data - 记账设置中修改收入（支出）子类信息
   * @example 参数 { "accountCode": '111' ,"accountName": '类别名称', "accountSubCodes": ['111', '111']}
   * @returns {Object} 接口返回成功或者失败
   */
  updateChildAccountType (data) {
    return axios.postService('/api/sys/account/category/sub/update', data);
  }
};
